□ 등록 및 로그인

o 디바이스 등록

- 기능 : 디바이스를 등록하고 생성한 DeviceID를 전달

- URL : /api/sw/device

- 모드 : POST

- 전달 데이터

{

“id” :　“XXX”,

“type” : 2,

“hw” : “{CPUID}”,

“sw” : “{VersionInfo}”,

“ble” : “{BLEID}”

}

- 응답 형식 : application/json

- 응답 데이터

{

“id” : “SW2405D00001”

}

o 로그인 토큰 확인

- URL : /api/sw/token/cache/:6digit?tkey={TokenKey}

- 모드 : GET

- 응답 형식 : application/json

- 응답 데이터

{

"token“ : ”{TokenString}“

}

o 사용자 로그인

- 기능 : 토큰을 기반으로 사용자 로그인

- URL : /api/sw/token/login/:token

- 모드 : GET

- 응답 형식 : application/json

- 응답 데이터

200 OK

{

“id” : “{DeviceID}”,

“tel” : “{TelNo}”,

“mode” : 0 || 1

}

* 0 : 사용자, 1 : 보호자

404 Not Found

{

“message” : "User with token <token_string>, not found."

}

o 사용자 로그오프

- 기능 : 토큰을 기반으로 사용자 로그오프

- URL : /api/sw/token/logoff/:token

- 모드 : GET

- 응답 형식 : application/json

- 응답 데이터

200 OK

{

“id” : “{DeviceID}”,

“tel” : “{TelNo}”,

“mode” : 0 || 1

}

* 0 : 사용자, 1 : 보호자

404 Not Found

{

“message” : "User with token <token_string>, not found."

}

□ 각종 정보 검색

o 각종 정보 검색 API 호출時 필요사항

- HTTP Authorization 헤더에 ‘Bearer {TokenString}’을 설정하여 REST API를 호출해야 하며,

- 각 REST API는 해당 기능 수행에 앞서 ‘TokenString’을 기준으로 사용자의 로그인 여부를 점검함

o 사용자 목록 확인

- 기능 : 동일 ID로 등록된 사용자 목록 확인

- URL : /api/sw/token/user

- 모드 : GET

- 응답 형식 : application/json

- 응답 데이터

{

{

"tel": "01012345678",

"mode": 0,

"login": 1,

"dt": "20240626"

},

{

"tel": "01023456789",

"mode": 1,

"login": 0,

"dt": null

}

}

* mode : 0 → 사용자, 1 → 보호자, 2 → 보호자(SMS 수신만)

* login : 0 → logoff, 1 → login

o 사용자 등록 삭제

- 기능 : 전화번호 기준 사용자 등록 삭제

- URL : /api/sw/token/user/:tel

- 모드 : DELETE

- 응답 형식 : text/plain

- 응답 데이터

200 OK

o 현재 상태정보 확인

- 기능 : 위험도⋅만보기 등 현재 상태정보 확인

- URL : /api/down/state/:id

- 모드 : GET

- 응답 형식 : application/json

- 응답 데이터

{

“dt” : “20240625 120101”,

“gps” : “<latitude>,<longitude>”,

“address” : “<address>”

“location” : “<location>”,

"risk“ : 80,

“walk” : 5000,

“cal” : 150,

“span” : 3800

}

o 디바이스 상태정보 확인

- 기능 : 배터리 등 디바이스 상태정보 확인

- URL : /api/sw/state/:id

- 모드 : GET

- 응답 형식 : application/json

- 응답 데이터

{

“battery” : 90

}

o 일자별 위험도 확인

- 기능 : 최근 14일간의 일자별 위험도 데이터를 확인

- URL : /api/down/risk/date/:id

- 모드 : GET

- 응답 형식 : application/json

- 응답 데이터

{

{

"dt : “20240425”,

“risk” : 50

},

⋅⋅⋅

{

"dt : “20240508”,

“risk” : 70

}

}

o 특정 일자 위험도 확인

- 기능 : 지정한 날짜의 5분 단위 위험도 데이터를 확인

- URL : /api/down/risk/data/:id[?qrdate=20240508]

* ‘qrdate’를 생략하면 오늘 데이터를 확인

- 모드 : GET

- 응답 형식 : application/json

- 응답 데이터

{

{

“dt” : “0000”,

“risk” : 50

},

⋅⋅⋅

{

“dt” : “2355”,

“risk” : 30

}

}

o 일자별 만보기 데이터 확인

- 기능 : 최근 14일간의 일자별 만보기 데이터(걸음수, 칼로리)를 확인

- URL : /api/down/walk/date/:id

- 모드 : GET

- 응답 형식 : application/json

- 응답 데이터

{

{

"dt : “20240425,

“walk” : 5000,

“cal” : 150,

“span” : 7500

},

⋅⋅⋅

{

"dt : “20240508”,

“walk” : 5000,

“cal” : 150,

“span” : 3600

}

}

o 특정 일자 만보기 데이터 확인

- 기능 : 지정한 날짜의 30분 단위 만보기 데이터(걸음수, 칼로리)를 확인

- URL : /api/down/walk/data/:id[?qrdate=20240508]

* ‘qrdate’를 생략하면 오늘 데이터를 확인

- 모드 : GET

- 응답 형식 : application/json

- 응답 데이터

{

{

“dt” : “0000”,

“walk” : 5000,

“cal” : 150,

“span” : 500

},

⋅⋅⋅

{

“dt” : “2355”,

“walk” : 5000,

“cal” : 150,

“span” : 1500

}

}

o 목표 걸음수 확인

- 기능 : 목표 걸음수 설정값을 확인

- URL : /api/down/walk/goal/:id

- 모드 : GET

- 응답 형식 : application/json

- 응답 데이터

{

“goal” : <walk_goal>

}

o 사고 건수 확인

- URL : /api/sw/accident/count/:id

- 모드 : GET

- 응답 형식 : application/json

- 응답 데이터

{

“result” : <count>

}

o 사고 기록 확인

- URL : /api/sw/accident/data/:id

- 모드 : GET

- 응답 형식 : application/json

- 응답 데이터

{

{

“dt” : “20240508”,

“gps” : “{latitude},{longitude}”

“location” : “{location_string}”,

“address” : “{address_string}”

},

⋅⋅⋅

{

“dt” : “20240508”,

“gps” : “{latitude},{longitude}”

“location” : “{location_string}”,

“address” : “{address_string}”

}

}

o 최근 방문지 확인

- URL : /api/sw/location/recent/:id

- 모드 : GET

- 응답 형식 : application/json

- 응답 데이터

{

{

“dt” : “20240625 120101”,

“address” : “{address_string}”

},

⋅⋅⋅

{

“dt” : “20240625 110101”,

“address” : “{address_string}”

}

}

□ 각종 데이터 전달

o Trigger Data 전달

- 기능 : 낙상 발생時 Trigger Data를 서버에 전달

- URL : /api/sw/tdata/:id

- 모드 : POST

- Content-Type : application/octet-stream

- 전달 데이터 : 바이너리 바이트 스트림

- 응답 데이터 : HTTP 응답

o DFU 펌웨어 파일 다운로드

- 기능 : 서버에서 펌웨어 파일을 다운로드

- URL : /api/sw/dfu/file/:id[?file={filename}]

- 모드 : GET

- Content-Type : application/octet-stream

- 응답 데이터 : 바이너리 바이트 스트림

o DFU 펌웨어 정보 확인

- URL : /api/sw/dfu/info/:id

- 모드 : GET

- 응답 형식 : application/json

- 응답 데이터 : 바이너리 바이트 스트림

{

“dfu” : 0 or 1

“file” : “D1-NRF-1.0.0-20240930”,

“len” : 144125,

“dt” : “20240625 120101”

}

* dfu : 0 → 업데이트 불필요, 1 → 업데이트 필요

□ 디바이스 변경 및 보호자 멀티 디바이스 지원

o 사용자 디바이스 변경

- 기능 : 토큰을 기반으로 사용자 디바이스 변경

- URL : /api/sw/token/device/:id

- 모드 : PUT

- 응답 형식 : application/json

- 응답 데이터

200 OK

404 Not Found

{

“message” : "User with token <token_string>, not found."

}

o 보호자 로그인

- 기능 : 토큰을 기반으로 보호자 로그인

- URL : /api/sw/token/login1/:token

- 모드 : GET

- 응답 형식 : application/json

- 응답 데이터

200 OK

[

{

“id” : “{DeviceID}”,

“tel” : “{TelNo}”,

“st” : 1

}

⋅⋅⋅

{

“id” : “{DeviceID}”,

“tel” : “{TelNo}”,

“st” : 0

}

]

* st : 0 → 未사용, 1 → 사용中

404 Not Found

{

“message” : "User with token <token_string>, not found."

}